מחיקת קובץ
{
$file = $_GET['delete'];
$site = 'http://ncode.bbp.co.il/';
$folder = 'file/';
$loc = $site.$folder;
if (file_exists(($loc.$file)))
{
unlink($loc.$file);
if(delete_file($loc , $file))
{
$messg = <<<html
<script> alert ("הקובץ נמחק בהצלחה!"); </script>
html;
echo $messg;
}
else
{
echo $err2;
}
}
else
{
$error = <<<html
<script> alert ("הקובץ שאתה מנסה למחוק אינו קיים, בטוח שזה הוא קישור המחיקה?"); </script>
html;
echo $error;
}
}
else
{
}
אבל מסיבה מסויימת מבחינתו הקובץ אף פעם לא קיים (file exists יוצא שלילי תמיד).
9 תשובות
$folder = 'file/';
$loc = $site.$folder
איך אתה רואה את זה קורה?
הקוד מתחבר רגע facebook.com ומוחק משם את הקובץ index.php ?
או שאולי צריך לתת לו את הנתיב של הקובץ במחשב הנוכחי? כמו
C:\wamp/www/whatever/httpdocs
---
אין פונקציה כזו כמו delete_file.
יש סוגים שונים של כתובות. הכתובת שאתה משתמש בה היא כתובת בפרוטוקול HTTP, היא לא קשורה למה שאתה מנסה לעשות. כשאתה אומר לשרת למחוק את הקובץ, אתה "נמצא" בתוך השרת, אתה לא פונה אליו בפרוטוקול אינטרנט, אלא כמו במחשב שלך. עכשיו תנסה לקרוא שוב את מה שהוא כתב. :-)
בקשר לפונקציה - השתמשו בה שם כי הגדירו אותה שם. אתה לא יכול לגשת אליה סתם כך. מפענח ה-PHP שלך לא מודע לזה שבאתר אחר איפשהו שם יש מדריך עליו (יש סיכוי שהוא יהיה די מוחמא, האמת), ושבמדריך הזה הגדירו פונקציה והשתמשו בה. :-)
אתה יכול להשתמש בנתיב יחסי. כלומר, אם אתה (הסקריפט שלך) נמצא ב:
ואתה רוצה למחוק קובץ בשם blablabla.php שנמצא בתת-תיקייה (abc) של התיקייה שבתוכה index.php, תכתוב:
או שתשתמש בנתיב מוחלט. שים לב שאם אתה משתמש במאפיינים סופר-גלובליים (כולל $_SERVER), אתה צריך לסנן את הנתונים קודם.
לא הבנתי כל כך, החלק של הסקריפט הוא על השרת, אז אין לי מושג מה המיקום שלו.
החלק עם הנתיב מוחלט, תוכל להראות קוד לדוגמה?
אתה מארגן שם את התיקיות ואת הקבצים, יש לך מושג מדויק איפה הקובץ שאתה רוצה (בנתיב יחסי).
בנתיב מוחלט - אתה רק צריך להגיע לתיקיית השורש של ה"אתר" עצמו. ואת זה אתה יכול להשיג בקלות. תגגל קצת, ותמצא אלפי דוגמאות קוד.